﻿using DevComponents.DotNetBar.SuperGrid;
using SDATA;
using SDLL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SABI
{
    public partial class frm0100 : Form
    {

        string sql = "";

        public frm0100()
        {
            InitializeComponent();
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            (Application.OpenForms["frmHOME"] as frmHOME).CloseTab(this);
        }       

        private void frm0100_Shown(object sender, EventArgs e)
        {
            loadDATA_Grid1();
        }

        void loadDATA_Grid1()
        {
            sql = "Select * from tb0056 Order by UnitID";
            GridDB1.PrimaryGrid.DataSource = FRM.GetDataTable(sql);

        }

        private void GridDB1_SelectionChanged(object sender, DevComponents.DotNetBar.SuperGrid.GridEventArgs e)
        {
            txtUnitID.ReadOnly = true;
            GridRow gr = (GridRow)e.GridPanel.ActiveRow;
            txtUnitID.Text = gr.Cells["clUnitID"].Value.ToString();
            txtUnitName.Text = gr.Cells["clUnitName"].Value.ToString();
            chkDisabled.Checked = gr.Cells["clDisabled"].Value.ToString() == "1" ? true : false;
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            nAdd();
        }

        void nAdd()
        {
            txtUnitID.ReadOnly = false;
            txtUnitID.Text = "";
            txtUnitName.Text = "";
            chkDisabled.Checked = false;
        }
        void nDelete()
        {
            if (GridDB1.PrimaryGrid.GetSelectedRows().Count < 1)
            {
                DLL02.Alert("Bạn phải chọn dòng cần xóa!");
                return;
            }
            if (!DLL02.Confirm("Bạn có chắc muốn xóa?", "Xác nhận")) { return; }

            sql = string.Format("Select top 1 1  From tb0054  Where UnitID = '{0}'", txtUnitID.Text);
            DataTable dt1 = FRM.GetDataTable(sql);
            if (dt1.Rows.Count > 0)
            {
                DLL02.Info("Đơn vị tính này đang được sử dụng ở bảng mặt hàng. Không thể xóa");
                return;
            }

            sql = string.Format("DELETE tb0056 WHERE UnitID='{0}'", txtUnitID.Text);
            if (SDATA.DATA.ExecuteNonQuery(sql, FRM.ConnectString, false))
            {
                loadDATA_Grid1();
            }
            else
            {
                SDLL.DLL02.Alert("Xóa dữ liệu không thành công");
            }
        }

        void nInfo()
        {
            string tn = "tb0056";
            string ws = string.Format("WHERE UnitID='{0}'", txtUnitID.Text);
            Form frm = new frm0067(tn, ws);
            frm.ShowDialog();
        }

        void nRefresh()
        {
            loadDATA_Grid1();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!CheckInput()) { return; }
            if (!txtUnitID.ReadOnly)
            {
                AddNew();
            }
            else
            {
                UpdateInfo();
            }
        }

        bool CheckInput()
        {
            if(txtUnitID.Text.Trim()=="")
            {
                DLL02.Alert("Mã đơn vị tính không để trống!");
                return false;
            }
            else if(txtUnitName.Text.Trim()=="")
            {
                DLL02.Alert("Tên đơn vị tính không để trống!");
                return false;
            }
            return true;
        }

        void AddNew()
        {
            sql = "INSERT tb0056(UnitID,UnitName,Disabled,";
            sql += "CreateDate,CreateUserID,LastModifyDate,LastModifyUserID) VALUES(";
            sql += string.Format("'{0}',N'{1}','{2}',", txtUnitID.Text, txtUnitName.Text, chkDisabled.Checked?1:0);
            sql += string.Format("GETDATE(),'{0}',GETDATE(),'{0}')", FRM.UserName);
            if (SDATA.DATA.ExecuteNonQuery(sql, FRM.ConnectString, false))
            {
                DLL02.Info("Lưu dữ liệu không thành công");
                loadDATA_Grid1();
            }
            else
            {
                DLL02.Alert("Lưu dữ liệu không thành công");
            }
        }

        void UpdateInfo()
        {
            sql = "UPDATE tb0056 SET  UnitName=N'{0}', Disabled='{1}', LastModifyDate=GETDATE(), LastModifyUserID = '{2}' WHERE UnitID='{3}'";
            sql = string.Format(sql, txtUnitName.Text, chkDisabled.Checked?1:0, FRM.UserName, txtUnitID.Text);
            if (SDATA.DATA.ExecuteNonQuery(sql, FRM.ConnectString, false))
            {
                DLL02.Info("Cập nhật dữ liệu không thành công");
                loadDATA_Grid1();
            }
            else
            {
                DLL02.Alert("Cập nhật dữ liệu không thành công");
            }
        }

        private void frm0100_Load(object sender, EventArgs e)
        {

        }

        private void mAdd_Click(object sender, EventArgs e)
        {
            nAdd();
        }

        private void mDelete_Click(object sender, EventArgs e)
        {
            nDelete();
        }

        private void mRefresh_Click(object sender, EventArgs e)
        {
            nRefresh();
        }

        private void mSystemInfo_Click(object sender, EventArgs e)
        {
            nInfo();
        }
    }
}
